#ifndef CPUMONITOR_H
#define CPUMONITOR_H
#include <cstdint>

class CpuMonitor
{
public:
    CpuMonitor();

    /**
     * @brief 获取CPU使用率
     * @return
     */
    static double getCpuUsage();

    /**
     * @brief 获取CPU数量
     * @return
     */
    static int getCpuCount();

    /**
     * @brief 频率单位
     */
    enum FreqUnit
    {
        MHZ = 0,
        GHZ = 1
    };

    /**
     * @brief 获取指定CPU核心的频率
     * @param coreId CPU ID
     * @return
     */
    static double getCurCpuFreq(int cpuId, FreqUnit unit);

    /**
     * @brief 获取CPU平均频率
     * @param unit
     * @return
     */
    static double getAvgCpuFreq(FreqUnit unit);

};

#endif // CPUMONITOR_H
